[dev-1.36] KEP-5491: DRA: List Types for Attributes#54561
[dev-1.36] KEP-5491: DRA: List Types for Attributes#54561everpeace wants to merge 1 commit intokubernetes:dev-1.36from
Conversation
✅ Pull request preview available for checkingBuilt without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Hello @johnbelamaric @everpeace 👋, v1.36 Docs Team here again! Please take a look at Documenting for a release - PR Ready for Review to get your PR ready for review before Tuesday 31st March 2026. Please let us know once your PR is fully Thank you! |
4d4e209 to
2e6a6c0
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/assign @johnbelamaric @klueska @pohly @pravk03 (as this KEP's reviewers)
@sayanchowdhury I think this PR is now ready for review. |
|
Hello @everpeace 👋, |
| ### List type attributes {#list-type-attributes} | ||
|
|
||
| {{< feature-state feature_gate_name="DRAListTypeAttributes" >}} | ||
|
|
There was a problem hiding this comment.
I would re-organize this into two sections. One is for end users, and one is for DRA driver authors. I would start with a very short overview and end user content. Something like:
| This feature improves the ResourceSlice API, allowing DRA drivers to specify list values for device attributes instead of only scalars. This is useful for modeling more complex internal node topologies, for example when a CPU has adjacency to multiple PCIe roots. | |
| For ResourceClaim authors (end users), this means that the `matchAttribute` and `distinctAttribute` work better for these cases. When using `matchAttribute`, the two attributes must have a *non-empty list intersection*, rather than be identical (scalar values are treated as single-item lists). This just means that if one driver publishes a single value for, say, the PCIe root, and another driver publishes a list, the constraint is met as long as the single value appears somewhere in the list. Similarly, for `distinctAttribute`, the attribute values must be *pairwise-disjoint* (no value shared between any two devices). | |
| To help ResourceClaim authors use attributes that may be lists inside CEL expressions, this feature also introduces an `includes()` CEL function. | |
| ...add more from your section below... |
|
|
||
| {{< feature-state feature_gate_name="DRAListTypeAttributes" >}} | ||
|
|
||
| By default, each `DeviceAttribute` holds exactly one scalar value: a boolean, an integer, |
There was a problem hiding this comment.
Here, preface this with a header that indicates it is mostly for driver authors:
| By default, each `DeviceAttribute` holds exactly one scalar value: a boolean, an integer, | |
| #### Details for DRA Driver Authors | |
| By default, each `DeviceAttribute` holds exactly one scalar value: a boolean, an integer, |
| - model-b | ||
| ``` | ||
|
|
||
| #### Effect on `matchAttribute` and `distinctAttribute` |
There was a problem hiding this comment.
you can remove this section (make sure what you put up above covers the same material)
| Scalar attributes are backward-compatible: a single-value attribute is treated as a | ||
| singleton set for the purpose of these comparisons. | ||
|
|
||
| #### The `includes()` CEL function |
There was a problem hiding this comment.
same here - this should be covered above (add to what I put in the suggestion)
For: kubernetes/enhancements#5491
Feature blog post PR: #54567
Description
This PR adds a user-facing document for kubernetes/enhancements#5491
/wg device-management